package com.wj.facedetect.bean.home;

import com.google.gson.annotations.SerializedName;

import java.io.Serializable;
import java.util.List;

/**
 * Created by tangkun on 2018/4/4.
 */

public class RefactorBean implements Serializable {

    /**
     * rtn : 0
     * retrieval_query_id : 106@DEFAULT
     * face_image_uri : normal://query-engine/20180515/alae9mMmlDtMN6fj+tsUNg==@1@DEFAULT
     * picture_uri : normal://32765/20180515/oxzh84Ix6dvpynfqjt-p9A==@1@DEFAULT
     * results : [{"born_year":0,"face_image_id":"281474976710843@DEFAULT","face_image_id_str":"281474976710843@DEFAULT","face_image_uri":"normal://repository-builder/20180515/Q7-jdA+xHnt6ie-Z+UNF7g==@1@DEFAULT","face_rect":{"h":579,"w":579,"x":287,"y":34},"gender":0,"is_writable":true,"name":"吴靖","nation":0,"permission_map":{"0":2,"1":2,"101":2,"102":2,"400":2,"452":2,"453":2,"501":2,"502":2,"503":2,"504":2,"505":2,"553":2,"554":2,"601":2,"602":2,"603":2,"604":2,"605":2},"person_id":"","picture_uri":"normal://repository-builder/20180515/GcGrJRxJlU9yWGxwI+edJA==@1@DEFAULT","repository_id":"1@DEFAULT","similarity":98.29764960279932,"timestamp":1526321571,"offset":0},{"born_year":0,"face_image_id":"281474976710840@DEFAULT","face_image_id_str":"281474976710840@DEFAULT","face_image_uri":"normal://repository-builder/20180601/VziRk1zHzjlrA6-Eik5Cew==@1@DEFAULT","face_rect":{"h":1092,"w":1092,"x":308,"y":319},"gender":0,"is_writable":true,"name":"新垣结衣","nation":0,"permission_map":{"0":2,"1":2,"101":2,"102":2,"400":2,"452":2,"453":2,"501":2,"502":2,"503":2,"504":2,"505":2,"553":2,"554":2,"601":2,"602":2,"603":2,"604":2,"605":2},"person_id":"","picture_uri":"normal://repository-builder/20180601/pKx57zRQSLAhDSKhkwAf-w==@1@DEFAULT","repository_id":"1@DEFAULT","similarity":36.96710211685238,"timestamp":1527826020,"offset":1}]
     * total : 2
     * query : {"cluster_id":"DEFAULT","retrieval":{"face_image_uri":"normal://query-engine/20180515/alae9mMmlDtMN6fj+tsUNg==@1@DEFAULT","picture_uri":"normal://32765/20180515/oxzh84Ix6dvpynfqjt-p9A==@1@DEFAULT","face_rect":{"h":332,"w":331,"x":123,"y":224},"repository_list":[{"repository_id":1}],"threshold":0,"using_ann":true},"start":0,"limit":10,"fields":["face_image_id","repository_id","timestamp","person_id","name","gender","nation","camera_id","is_hit","born_year","picture_uri","face_image_uri","face_rect","multi_frame_face_image_uris","multi_frame_picture_uris","multi_frame_face_rects","rec_glasses","rec_fringe","rec_uygur","rec_gender","rec_age","rec_age_range","similarity","annotation","case_number","remark"],"condition":{},"order":{"similarity":40},"query_meta":{}}
     */

    private int rtn;
    private String retrieval_query_id;
    private String face_image_uri;
    private String picture_uri;
    private int total;
    private QueryBean query;
    private List<ResultsBean> results;

    public int getRtn() {
        return rtn;
    }

    public void setRtn(int rtn) {
        this.rtn = rtn;
    }

    public String getRetrieval_query_id() {
        return retrieval_query_id;
    }

    public void setRetrieval_query_id(String retrieval_query_id) {
        this.retrieval_query_id = retrieval_query_id;
    }

    public String getFace_image_uri() {
        return face_image_uri;
    }

    public void setFace_image_uri(String face_image_uri) {
        this.face_image_uri = face_image_uri;
    }

    public String getPicture_uri() {
        return picture_uri;
    }

    public void setPicture_uri(String picture_uri) {
        this.picture_uri = picture_uri;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public QueryBean getQuery() {
        return query;
    }

    public void setQuery(QueryBean query) {
        this.query = query;
    }

    public List<ResultsBean> getResults() {
        return results;
    }

    public void setResults(List<ResultsBean> results) {
        this.results = results;
    }

    public static class QueryBean implements Serializable {
        /**
         * cluster_id : DEFAULT
         * retrieval : {"face_image_uri":"normal://query-engine/20180515/alae9mMmlDtMN6fj+tsUNg==@1@DEFAULT","picture_uri":"normal://32765/20180515/oxzh84Ix6dvpynfqjt-p9A==@1@DEFAULT","face_rect":{"h":332,"w":331,"x":123,"y":224},"repository_list":[{"repository_id":1}],"threshold":0,"using_ann":true}
         * start : 0
         * limit : 10
         * fields : ["face_image_id","repository_id","timestamp","person_id","name","gender","nation","camera_id","is_hit","born_year","picture_uri","face_image_uri","face_rect","multi_frame_face_image_uris","multi_frame_picture_uris","multi_frame_face_rects","rec_glasses","rec_fringe","rec_uygur","rec_gender","rec_age","rec_age_range","similarity","annotation","case_number","remark"]
         * condition : {}
         * order : {"similarity":40}
         * query_meta : {}
         */

        private String cluster_id;
        private RetrievalBean retrieval;
        private int start;
        private int limit;
        private ConditionBean condition;
        private OrderBean order;
        private QueryMetaBean query_meta;
        private List<String> fields;

        public String getCluster_id() {
            return cluster_id;
        }

        public void setCluster_id(String cluster_id) {
            this.cluster_id = cluster_id;
        }

        public RetrievalBean getRetrieval() {
            return retrieval;
        }

        public void setRetrieval(RetrievalBean retrieval) {
            this.retrieval = retrieval;
        }

        public int getStart() {
            return start;
        }

        public void setStart(int start) {
            this.start = start;
        }

        public int getLimit() {
            return limit;
        }

        public void setLimit(int limit) {
            this.limit = limit;
        }

        public ConditionBean getCondition() {
            return condition;
        }

        public void setCondition(ConditionBean condition) {
            this.condition = condition;
        }

        public OrderBean getOrder() {
            return order;
        }

        public void setOrder(OrderBean order) {
            this.order = order;
        }

        public QueryMetaBean getQuery_meta() {
            return query_meta;
        }

        public void setQuery_meta(QueryMetaBean query_meta) {
            this.query_meta = query_meta;
        }

        public List<String> getFields() {
            return fields;
        }

        public void setFields(List<String> fields) {
            this.fields = fields;
        }

        public static class RetrievalBean implements Serializable {
            public static class FaceRectBean {
                /**
                 * h : 332
                 * w : 331
                 * x : 123
                 * y : 224
                 */

                private int h;
                private int w;
                private int x;
                private int y;

                public int getH() {
                    return h;
                }

                public void setH(int h) {
                    this.h = h;
                }

                public int getW() {
                    return w;
                }

                public void setW(int w) {
                    this.w = w;
                }

                public int getX() {
                    return x;
                }

                public void setX(int x) {
                    this.x = x;
                }

                public int getY() {
                    return y;
                }

                public void setY(int y) {
                    this.y = y;
                }
            }

            public static class RepositoryListBean {
            }
        }

        public static class ConditionBean implements Serializable {
        }

        public static class OrderBean implements Serializable {
        }

        public static class QueryMetaBean implements Serializable {
        }
    }

    public static class ResultsBean implements Serializable {
        /**
         * born_year : 0
         * face_image_id : 281474976710843@DEFAULT
         * face_image_id_str : 281474976710843@DEFAULT
         * face_image_uri : normal://repository-builder/20180515/Q7-jdA+xHnt6ie-Z+UNF7g==@1@DEFAULT
         * face_rect : {"h":579,"w":579,"x":287,"y":34}
         * gender : 0
         * is_writable : true
         * name : 吴靖
         * nation : 0
         * permission_map : {"0":2,"1":2,"101":2,"102":2,"400":2,"452":2,"453":2,"501":2,"502":2,"503":2,"504":2,"505":2,"553":2,"554":2,"601":2,"602":2,"603":2,"604":2,"605":2}
         * person_id :
         * picture_uri : normal://repository-builder/20180515/GcGrJRxJlU9yWGxwI+edJA==@1@DEFAULT
         * repository_id : 1@DEFAULT
         * similarity : 98.29764960279932
         * timestamp : 1526321571
         * offset : 0
         */

        private int born_year;
        private String face_image_id;
        private String face_image_id_str;
        private String face_image_uri;
        private FaceRectBeanX face_rect;
        private int gender;
        private boolean is_writable;
        private String name;
        private int nation;
        private PermissionMapBean permission_map;
        private String person_id;
        private String picture_uri;
        private String repository_id;
        private double similarity;
        private int timestamp;
        private int offset;

        public int getBorn_year() {
            return born_year;
        }

        public void setBorn_year(int born_year) {
            this.born_year = born_year;
        }

        public String getFace_image_id() {
            return face_image_id;
        }

        public void setFace_image_id(String face_image_id) {
            this.face_image_id = face_image_id;
        }

        public String getFace_image_id_str() {
            return face_image_id_str;
        }

        public void setFace_image_id_str(String face_image_id_str) {
            this.face_image_id_str = face_image_id_str;
        }

        public String getFace_image_uri() {
            return face_image_uri;
        }

        public void setFace_image_uri(String face_image_uri) {
            this.face_image_uri = face_image_uri;
        }

        public FaceRectBeanX getFace_rect() {
            return face_rect;
        }

        public void setFace_rect(FaceRectBeanX face_rect) {
            this.face_rect = face_rect;
        }

        public int getGender() {
            return gender;
        }

        public void setGender(int gender) {
            this.gender = gender;
        }

        public boolean isIs_writable() {
            return is_writable;
        }

        public void setIs_writable(boolean is_writable) {
            this.is_writable = is_writable;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getNation() {
            return nation;
        }

        public void setNation(int nation) {
            this.nation = nation;
        }

        public PermissionMapBean getPermission_map() {
            return permission_map;
        }

        public void setPermission_map(PermissionMapBean permission_map) {
            this.permission_map = permission_map;
        }

        public String getPerson_id() {
            return person_id;
        }

        public void setPerson_id(String person_id) {
            this.person_id = person_id;
        }

        public String getPicture_uri() {
            return picture_uri;
        }

        public void setPicture_uri(String picture_uri) {
            this.picture_uri = picture_uri;
        }

        public String getRepository_id() {
            return repository_id;
        }

        public void setRepository_id(String repository_id) {
            this.repository_id = repository_id;
        }

        public double getSimilarity() {
            return similarity;
        }

        public void setSimilarity(double similarity) {
            this.similarity = similarity;
        }

        public int getTimestamp() {
            return timestamp;
        }

        public void setTimestamp(int timestamp) {
            this.timestamp = timestamp;
        }

        public int getOffset() {
            return offset;
        }

        public void setOffset(int offset) {
            this.offset = offset;
        }

        public static class FaceRectBeanX implements Serializable{
            /**
             * h : 579
             * w : 579
             * x : 287
             * y : 34
             */

            private int h;
            private int w;
            private int x;
            private int y;

            public int getH() {
                return h;
            }

            public void setH(int h) {
                this.h = h;
            }

            public int getW() {
                return w;
            }

            public void setW(int w) {
                this.w = w;
            }

            public int getX() {
                return x;
            }

            public void setX(int x) {
                this.x = x;
            }

            public int getY() {
                return y;
            }

            public void setY(int y) {
                this.y = y;
            }
        }

        public static class PermissionMapBean implements Serializable{
            /**
             * 0 : 2
             * 1 : 2
             * 101 : 2
             * 102 : 2
             * 400 : 2
             * 452 : 2
             * 453 : 2
             * 501 : 2
             * 502 : 2
             * 503 : 2
             * 504 : 2
             * 505 : 2
             * 553 : 2
             * 554 : 2
             * 601 : 2
             * 602 : 2
             * 603 : 2
             * 604 : 2
             * 605 : 2
             */

            @SerializedName("0")
            private int _$0;
            @SerializedName("1")
            private int _$1;
            @SerializedName("101")
            private int _$101;
            @SerializedName("102")
            private int _$102;
            @SerializedName("400")
            private int _$400;
            @SerializedName("452")
            private int _$452;
            @SerializedName("453")
            private int _$453;
            @SerializedName("501")
            private int _$501;
            @SerializedName("502")
            private int _$502;
            @SerializedName("503")
            private int _$503;
            @SerializedName("504")
            private int _$504;
            @SerializedName("505")
            private int _$505;
            @SerializedName("553")
            private int _$553;
            @SerializedName("554")
            private int _$554;
            @SerializedName("601")
            private int _$601;
            @SerializedName("602")
            private int _$602;
            @SerializedName("603")
            private int _$603;
            @SerializedName("604")
            private int _$604;
            @SerializedName("605")
            private int _$605;

            public int get_$0() {
                return _$0;
            }

            public void set_$0(int _$0) {
                this._$0 = _$0;
            }

            public int get_$1() {
                return _$1;
            }

            public void set_$1(int _$1) {
                this._$1 = _$1;
            }

            public int get_$101() {
                return _$101;
            }

            public void set_$101(int _$101) {
                this._$101 = _$101;
            }

            public int get_$102() {
                return _$102;
            }

            public void set_$102(int _$102) {
                this._$102 = _$102;
            }

            public int get_$400() {
                return _$400;
            }

            public void set_$400(int _$400) {
                this._$400 = _$400;
            }

            public int get_$452() {
                return _$452;
            }

            public void set_$452(int _$452) {
                this._$452 = _$452;
            }

            public int get_$453() {
                return _$453;
            }

            public void set_$453(int _$453) {
                this._$453 = _$453;
            }

            public int get_$501() {
                return _$501;
            }

            public void set_$501(int _$501) {
                this._$501 = _$501;
            }

            public int get_$502() {
                return _$502;
            }

            public void set_$502(int _$502) {
                this._$502 = _$502;
            }

            public int get_$503() {
                return _$503;
            }

            public void set_$503(int _$503) {
                this._$503 = _$503;
            }

            public int get_$504() {
                return _$504;
            }

            public void set_$504(int _$504) {
                this._$504 = _$504;
            }

            public int get_$505() {
                return _$505;
            }

            public void set_$505(int _$505) {
                this._$505 = _$505;
            }

            public int get_$553() {
                return _$553;
            }

            public void set_$553(int _$553) {
                this._$553 = _$553;
            }

            public int get_$554() {
                return _$554;
            }

            public void set_$554(int _$554) {
                this._$554 = _$554;
            }

            public int get_$601() {
                return _$601;
            }

            public void set_$601(int _$601) {
                this._$601 = _$601;
            }

            public int get_$602() {
                return _$602;
            }

            public void set_$602(int _$602) {
                this._$602 = _$602;
            }

            public int get_$603() {
                return _$603;
            }

            public void set_$603(int _$603) {
                this._$603 = _$603;
            }

            public int get_$604() {
                return _$604;
            }

            public void set_$604(int _$604) {
                this._$604 = _$604;
            }

            public int get_$605() {
                return _$605;
            }

            public void set_$605(int _$605) {
                this._$605 = _$605;
            }
        }
    }
}
